// pages/search/search.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    activeTab: 0,  // 当前激活的标签页
    searchText: '', // 搜索框文本
    hasMore: true,  // 是否有更多数据
    jobList: [] // 岗位列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 加载岗位数据
    this.loadJobData();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 设置当前页面对应的tabBar索引
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 1
      });
    }
    
    // 更新全局变量
    const app = getApp();
    if (app.globalData) {
      app.globalData.tabBarIndex = 1;
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 切换导航标签
   */
  switchTab(e) {
    const index = e.currentTarget.dataset.index;
    if (this.data.activeTab === index) return;
    
    this.setData({
      activeTab: index,
      jobList: [] // 清空列表，准备加载新数据
    });
    
    // 根据新的标签页加载数据
    this.loadJobData();
  },
  
  /**
   * 加载岗位数据
   */
  loadJobData() {
    // 根据不同标签页加载不同的数据
    let jobType = ['兼职', '实习', '全职'][this.data.activeTab];
    
    // 模拟数据加载延迟
    wx.showLoading({
      title: '加载中...',
    });
    
    // 模拟网络请求延迟
    setTimeout(() => {
      // 根据当前标签页获取相应的模拟数据
      const mockData = this.getMockJobData(jobType);
      
      this.setData({
        jobList: mockData,
        hasMore: mockData.length >= 10 // 如果数据大于等于10条，显示"加载更多"
      });
      
      wx.hideLoading();
    }, 500);
  },
  
  /**
   * 获取模拟岗位数据
   */
  getMockJobData(jobType) {
    // 公司头像URL列表
    const companyAvatars = [
      'https://objectstorageapi.bja.sealos.run/a0qepsyj-001/text/Default%20avatar/d907281-0.png',
      'https://objectstorageapi.bja.sealos.run/a0qepsyj-001/text/Default%20avatar/d907281-1.png',
      'https://objectstorageapi.bja.sealos.run/a0qepsyj-001/text/Default%20avatar/d928162-0.png',
      'https://objectstorageapi.bja.sealos.run/a0qepsyj-001/text/Default%20avatar/d928162-1.png'
    ];
    
    // 根据不同岗位类型生成不同的模拟数据
    let mockJobs = [];
    
    if (jobType === '兼职') {
      mockJobs = [
        {
          id: '1',
          companyAvatar: companyAvatars[0],
          companyName: '瀚科科技',
          publishTime: '2025-03-21',
          jobTitle: '前端开发工程师（兼职）',
          description: '负责公司产品的前端开发，要求有Vue或React经验，熟悉小程序开发。',
          salary: '150-200元/天',
          tags: ['前端', '技术', '远程', '灵活时间'],
          compatibility: 95,
          followers: 28
        },
        {
          id: '2',
          companyAvatar: companyAvatars[1],
          companyName: '启明教育',
          publishTime: '2025-03-22',
          jobTitle: '数学家教（兼职）',
          description: '周末兼职家教，为高中生提供数学辅导，要求有教学经验，善于沟通。',
          salary: '200-300元/小时',
          tags: ['教育', '数学', '周末'],
          compatibility: 88,
          followers: 15
        },
        {
          id: '3',
          companyAvatar: companyAvatars[2],
          companyName: '思源咖啡',
          publishTime: '2025-03-20',
          jobTitle: '咖啡师助理（兼职）',
          description: '负责咖啡的制作和店铺日常运营，提供专业培训，无需经验。',
          salary: '25-30元/小时',
          tags: ['餐饮', '服务业', '弹性工作'],
          compatibility: 75,
          followers: 42
        }
      ];
    } else if (jobType === '实习') {
      mockJobs = [
        {
          id: '4',
          companyAvatar: companyAvatars[3],
          companyName: '字节跳动',
          publishTime: '2025-03-19',
          jobTitle: '后端开发实习生',
          description: '参与公司核心项目的后端开发，使用Go语言，要求计算机相关专业在校学生。',
          salary: '300-400元/天',
          tags: ['互联网', '后端', '全周期'],
          compatibility: 92,
          followers: 156
        },
        {
          id: '5',
          companyAvatar: companyAvatars[0],
          companyName: '阿里巴巴',
          publishTime: '2025-03-20',
          jobTitle: '产品经理实习生',
          description: '参与公司电商产品的规划和设计，协助产品经理进行需求分析和产品迭代。',
          salary: '250-350元/天',
          tags: ['互联网', '产品', '电商'],
          compatibility: 86,
          followers: 128
        },
        {
          id: '6',
          companyAvatar: companyAvatars[1],
          companyName: '腾讯',
          publishTime: '2025-03-21',
          jobTitle: 'UI设计实习生',
          description: '参与公司产品的UI设计，包括界面视觉设计、交互设计等，要求有设计基础。',
          salary: '200-300元/天',
          tags: ['互联网', '设计', '创意'],
          compatibility: 90,
          followers: 108
        }
      ];
    } else { // 就业（全职）
      mockJobs = [
        {
          id: '7',
          companyAvatar: companyAvatars[2],
          companyName: '华为',
          publishTime: '2025-03-18',
          jobTitle: '算法工程师',
          description: '负责公司AI算法的研发和优化，要求有机器学习相关经验，精通Python和TensorFlow。',
          salary: '30-50K/月',
          tags: ['人工智能', '算法', '5险1金'],
          compatibility: 94,
          followers: 210
        },
        {
          id: '8',
          companyAvatar: companyAvatars[3],
          companyName: '百度',
          publishTime: '2025-03-19',
          jobTitle: '全栈开发工程师',
          description: '负责公司核心项目的前后端开发，要求精通前端框架和后端开发，有全栈经验。',
          salary: '25-40K/月',
          tags: ['互联网', '全栈', '弹性工作'],
          compatibility: 89,
          followers: 175
        },
        {
          id: '9',
          companyAvatar: companyAvatars[0],
          companyName: '小米',
          publishTime: '2025-03-20',
          jobTitle: '产品运营经理',
          description: '负责公司产品的市场运营策略制定和执行，提升产品活跃度和用户增长。',
          salary: '20-35K/月',
          tags: ['互联网', '运营', '用户增长'],
          compatibility: 82,
          followers: 145
        }
      ];
    }
    
    return mockJobs;
  },
  
  /**
   * 搜索输入处理
   */
  onSearchInput(e) {
    this.setData({
      searchText: e.detail.value
    });
    
    // 实际应用中可以在这里实现实时搜索
    if (e.detail.value) {
      // 这里可以实现搜索逻辑
      console.log('搜索关键词:', e.detail.value);
    }
  },
  
  /**
   * 跳转到岗位详情页
   */
  navigateToJobDetail(e) {
    const jobId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/jobDetail/jobDetail?id=${jobId}`
    });
  },

  /**
   * 跳转到公司详情页
   */
  navigateToCompanyDetail(e) {
    const companyId = e.currentTarget.dataset.id;
    const companyName = e.currentTarget.dataset.company;
    wx.navigateTo({
      url: `/pages/companyDetail/companyDetail?id=${companyId}&name=${companyName}`
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新
    this.loadJobData();
    setTimeout(() => {
      wx.stopPullDownRefresh();
    }, 1000);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (!this.data.hasMore) return;
    
    // 加载更多数据
    wx.showLoading({
      title: '加载更多...',
    });
    
    // 模拟加载更多数据
    setTimeout(() => {
      // 这里可以实现加载更多的逻辑
      // 假设没有更多数据了
      this.setData({
        hasMore: false
      });
      
      wx.hideLoading();
    }, 1000);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})